Conventional multi-media streaming systems typically stream a single audio stream and a single associated video stream from a source to a destination. The combined bandwidth of the audio and video streams is the required channel bandwidth between the source and destination. If this channel bandwidth is reduced due to network congestion, for example, conventional systems have very limited means of adequately dealing with the reduction. Modern multi-media delivery systems therefore employ various techniques that allow a source to adapt to the changing source-destination bandwidth.
Video data is generally processed and transferred in the form of bit streams. Rate control involves the process of allocating bits for a group of pictures, a picture, a slice or a macroblock. A desirable rate control scheme should maximize picture quality for a given bit-rate. There are three general types of rate control, including constant bit-rate, variable bit-rate and exact bits. The length of a sequence may or may not be known. If it is known, one can achieve exact bits for the compressed stream, which can be useful for some storage applications. Constant bit-rate can be used for constant bit-rate transmission channels, such as in broadcast, for example. Constant bit-rate only requires a small buffer and is normally used in a push mode. Variable bit-rate can be used for variable bandwidth channels, such as for digital video disks. Variable bit-rate typically requires a large buffer and is normally used in a pull mode. Because any channel has a limited bandwidth, variable bit-rate has two parameters. One variable bit-rate parameter is maximum bit-rate, and the other is average bit-rate. The variable bit-rate maximum bit-rate is set for a channel, and the variable bit-rate average bit-rate is set for storage space.
A typical technique is to make multiple alternate audio and video streams available to the source, where the alternate streams are encodings of the same content but with different bandwidths. This gives the source choices from which to select the most appropriate audio/video streams for transmission to the destination.
Unfortunately, such prior methods have drawbacks such as inadequate adaptation to the changing source-destination bandwidth or bit-rate, high picture quality variation and blocking within pictures. Embodiments of the present disclosure address these and other issues.